package br.com.hmm.mb;

import javax.el.ELContext;
import javax.el.ELResolver;
import javax.faces.application.Application;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.faces.model.DataModel;

import org.richfaces.component.html.HtmlTabPanel;

public class GenericoBean {
	
	private DataModel lista;
	
	private HtmlTabPanel tabPanel;
	
	public GenericoBean(){
		
	}
	
    public DataModel getLista() {
		return lista;
	}

	public void setLista(DataModel lista) {
		this.lista = lista;
	}



	public HtmlTabPanel getTabPanel() {
		return tabPanel;
	}

	public void setTabPanel(HtmlTabPanel tabPanel) {
		this.tabPanel = tabPanel;
	}

	/**
     * Método para adicionar mensagens informativas
     * @param mensagem String
     */
    public void adicionarMensagem ( String mensagem )
{
    FacesContext contexto = FacesContext.getCurrentInstance();
    FacesMessage message = new FacesMessage();
    message.setSummary(mensagem);
    message.setSeverity(FacesMessage.SEVERITY_INFO);
    contexto.addMessage(null , message);
}
    
    /**
     * Método para adicionar mensagens de erro
     * @param mensagem String
     */
    public void adicionarMensagemErro (String mensagem)
{
    FacesContext contexto = FacesContext.getCurrentInstance();
    FacesMessage message = new FacesMessage();
    message.setSummary(mensagem);
    message.setSeverity(FacesMessage.SEVERITY_ERROR);
    contexto.addMessage(null , message);
}
    
    /**
     * 
     * @param bean
     * @return
     */
    public String destroiSessao(String bean){
        
        FacesContext contexto = FacesContext.getCurrentInstance();
        contexto.getExternalContext().getSessionMap().remove(bean);
        
        return "destruido";
    }
    
    /**
     * Procura o bean no contexto jsf
     * @param nome do bean
     * @return objeto
     */
    public Object getBean(String nome) {
        FacesContext contexto = FacesContext.getCurrentInstance();
        ELContext contextoEL = contexto.getELContext();
        Application aplicacao = contexto.getApplication();
        ELResolver resolvedorEL = aplicacao.getELResolver();
        return resolvedorEL.getValue(contextoEL, null, nome);
    }


}
